07 时序差分方法
TD Learning of State Values
算法公式:
vt+1(st)=vt(st)−αt(st)[vt(st)−[rt+1+γvt(st+1)]]
其中(最后一个方括号)
vtˉ=rt+1+γvt(st+1)
称为TD target,
δt=vt(st)−vtˉ
称为TD error。
对原公式变形,可以得到
∣vt+1(st)−vtˉ∣=∣1−αt(st)∣∣vt(st)−vtˉ∣∣vt+1(st)−vtˉ∣≤∣vt(st)−vtˉ∣
随着迭代,v将会越来越靠近vtˉ,所以vtˉ代表target。
而δt实际上是两个时刻量的相减
δt=vt(st)−[rt+1+γvt(st+1)]
可以证明如果vt=vπ,则δt为0,所以δt代表了现有状态值和真实值之间的误差。
这里的TD算法只能用于估计状态价值,但是不能估计 行动价值/最优策略。事实上,这种公式也是对贝尔曼公式(期望形式)的求解。
vπ(s)=E[R+γvπ(S′)∣S=s]
可以看出,TD learning在episode的每一步都可以更新,即它是在线算法。而蒙特卡洛等必须在某个episode结束后才能更新,为离线算法。此外,TD是自举的,方差(variance)较小(只涉及了较少的随机变量);蒙特卡洛不是自举的,由于涉及到整个episode的随机变量,方差较大。但由于TD依赖初始推测,TD是有偏的(bias);蒙特卡洛是无偏的。
Sarsa
qt+1(st,at)=qt(st,at)−αt(st,at)[qt(st,at)−[rt+1+γqt(st+1,at+1)]]
其中qt是qπ的估计值。
Sarsa也是对贝尔曼公式的求解,但是写为action value的形式。
将Sarsa和PI结合,就可以求出最优策略。
- 对每个episode
- 如果st不是目标状态
- 每次到达新状态
- 更新q
- 通过max q更新soft policy
Expected Sarsa
qt+1(st,at)=qt(st,at)−αt[qt(st,at)−[rt+1+γE[qt(st+1,A)]]]
这种方式将目标值(部分)从qt(st+1,at+1)改为了E[qt(st+1,A)],不需要对at+1进行采样,随机变量变少,随机性减少;但期望增加了 计算量。
N-Step Sarsa
N-Step Sarsa是介于Sarsa和蒙特卡洛之间的算法。
| 算法 | 公式 |
|---|
| 蒙特卡洛 | Gt=Rt+1+γRt+2+... |
| Sarsa | Gt=Rt+1+γqπ(St+1,At+1) |
| n-step Sarsa | Gt=Rt+1+γRt+2+...γnqπ(St+n,At+n) |
N-Step不是纯粹的在线/离线算法;对于Gt,它需要等到Rt+n到Rt+1都计算完成才能更新。
qt+n(st,at)=qt+n−1(st,at)−αt+n−1(st,at)[qt+n−1(st,at)−[rt+1+γrt+2+...+γnqt+n−1(st+n,at+n)]]
(暂时没有很理解这里的qt+n下标的含义,感觉像一个代号?)
Q-Learning
Q-Learning可以直接估计最优的action value,因此舍去了PI这一步。
qt+1(st,at)=qt(st,at)−αt(st,at)[qt(st,at)−[rt+1+γ max qt(st+1,a)]]
这个公式实质上是求解BOE的另一种形式。
q(s,a)=E[Rt+1+γ max q(St+1,a)∣St=s,At=a]
Q-Learning是off-policy的, 所以它实际可以写出两种形势。on-policy的形式和Sarsa相同,只是PE改为了Q-Learning的公式。
off-policy中,除了最优策略πT,还有一个行为策略πb。πb用于广泛探索(例如,遍历每个s,给每个a均等概率);对每个πb得到的轨迹,进行如下步骤
- 对每个轨迹的t=0,1,...
- PE
- qt+1(st,at)=qt(st,at)−αt(st,at)[qt(st,at)−[rt+1+γ max qt(st+1,a)]]
- PI
- πT,t+1(a∣st)=1 if a=arg maxaqt+1(st,a)
- πT,t+1(a∣st)=0 otherwise
On-Policy和Off-Policy
策略分为behavior policy和target policy。
- behavior policy(行为策略):用于产生经验性的样本(通过和外部环境交互得到经验)
- target policy(目标策略):持续优化以得到最优策略
当某种策略的behavior policy和target policy永远一致,则这种策略为on-policy;如果允许不一致,则为off-policy。
behavior policy的探索性较强,off-policy可以更好得利用探索得到的经验;而如果behavior policy和target policy相同,可能无法充分地进行探索。
| 算法 | 特征 |
|---|
| 蒙特卡洛 | on-policy |
| Sarsa | on-policy |
| Q-Learning | off-policy |